import logging
from logging.handlers import TimedRotatingFileHandler
import os
logger = logging.getLogger("my_logger")

def setup_logger(log_file):
    # 确保日志目录存在
    log_dir = os.path.dirname(log_file)
    if log_dir and not os.path.exists(log_dir):
        os.makedirs(log_dir)

    logger.setLevel(logging.DEBUG)  # 输出DEBUG及以上级别日志

    # 先清除旧的handler，避免重复添加
    if logger.hasHandlers():
        logger.handlers.clear()

    handler = TimedRotatingFileHandler(
        filename=log_file,
        when="midnight",
        interval=1,
        backupCount=3,
        encoding='utf-8'
    )

    formatter = logging.Formatter(
        fmt='%(asctime)s - %(levelname)s - %(message)s',    # 日志格式
        datefmt='%Y-%m-%d %H:%M:%S'                        # 时间格式
    )
    handler.setFormatter(formatter)
    logger.addHandler(handler)